use clap::Parser;
use rcli::{base64code, CmdExector, Opts, serve, sign, TextSubcommand};
use rcli::SubCommand;
use rcli::process_csv;
use rcli::process_genpass;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    tracing_subscriber::fmt::init();
    let opts = Opts::parse();
    opts.cmd.execute().await?;
    //  match opts.cmd {
    //     SubCommand::Csv(opt) => {
    //        let output =  if let Some(output) = &opt.output {
    //             output.clone()
    //         }else {
    //             format!("output.{}",opt.format)
    //        };
    //         process_csv(&opt.input, output,&opt.format)?
    //     },
    //      SubCommand::GenPass(opt) => {
    //          process_genpass(opt.uppercase,opt.lowercase,opt.numbers,opt.symbol,opt.length)?;
    //      },
    //      SubCommand::Base64(opt) =>{
    //         base64code(opt)?
    //      },
    //      SubCommand::Text(opt) => {
    //           match opt{
    //               TextSubcommand::Sign(opt) => {
    //                 sign(&opt)?
    //               },
    //               TextSubcommand::Verify(_opt) => {
    //                   todo!()
    //               },
    //           }
    //      },
    //      SubCommand::Http(opt) =>{
    //          serve(opt).await?
    //      }
    // }
    Ok(())
}